/*cpp is compiled language, computer can not understand our 
human written language so we need some software to
convert code into machine readable format and then we can
run the program.

Second step is linking, we can link multiple compiled codes
into one executable/application/library. 

cpp introduced two importent concepts as an upgrade to C:
1. OOP (object oriented programming):
	we will structure our code using classes.
	It is some sort of structure of data which allowes
	us to create objects or instances of a defined class.


2. Generic programming:
	With generic programming we can work with 
	structures of different types of data.


C and CPP are two separate programming language.
CPP came after C and CPP is bigger set than C.
CPP is not just C with added features.



*/

#include<iostream> //input output (io) library
int main()     //int is here return type of main function.
{
	std::cout<<"hi there\n"; //we use std::cout as we have not used the instruction: using namespace std; above int main()
							//btw this practice of just writing the using namespace std; and using cout<<"hi there"; is a bad
							//practice; when we write big programs we run in trouble of naming conflict which we will see later.

								//we can use "cout<<" as we have defined iostream.
								//here std is a namespace:

	return 0; //can only return an integer, 0 means success.
}


/* cout means consol output, it is an example object. object describes things,
similerly cout describes console output. It is an object of class "ostream".
and "cin" will be object of class "istream".


operators in cpp: << and >> are example of operators.
				  operators work on operands. here cout and "hi there" are
				  operands. 

*/